#ifndef _E_VECTOR_H_
#define _E_VECTOR_H_

#include <NxCharacter/NxExtended.h>

#include "eH.h"

namespace engine
{

class EVector : public Vector3
{
public:
  EVector();
  inline EVector( const EVector& vVec ) : Vector3( vVec.x, vVec.y, vVec.z ){}
  inline EVector( const Vector3& vVec ) : Vector3( vVec ) {}
  inline EVector( float _x, float _y, float _z ) : Vector3(_x, _y, _z) {}
  inline EVector( float xyz ) : Vector3( xyz, xyz, xyz ){}
  inline EVector( const NxVec3& v ) : Vector3(v.x, v.y, v.z){}
  inline EVector( const NxExtendedVec3& v ) : Vector3(v.x, v.y, v.z){}
  inline const NxVec3           getNxVec3         () const { return NxVec3(x, y, z); }
  inline const NxExtendedVec3   getNxExtendedVec3 () const { return NxExtendedVec3(x, y, z); }
  inline void                   fastNormalize     ();
  inline void                   operator=         (const EVector& vVec) { x = vVec.x; y = vVec.y; z = vVec.z; }

};

} // end namespace

#endif
